home *** CD-ROM | disk | FTP | other *** search
- assume cs:text
- text segment para public 'CODE'
-
- public blkcpy16
- blkcpy16 proc near
- push ebp
- push ebx
- push ecx
- push edx
- push esi
- push edi
- mov eax,36[esp] ; eax <-- y in src
- mov ebx,40[esp] ; ebx <-- width of src
- add ebx,ebx
- mov 40[esp],ebx
- mul ebx
- mov ebp,32[esp] ; edi <-- x in src
- add ebp,ebp
- add ebp,eax
- add ebp,28[esp] ; ebp <-- src ptr
-
- mov eax,52[esp] ; eax <-- y in dst
- mov ebx,56[esp] ; ebx <-- width of dst
- add ebx,ebx
- mov 56[esp],ebx
- mul ebx
- mov edx,48[esp] ; edx <-- x in dst
- add edx,edx
- add edx,eax
- add edx,44[esp] ; edx <-- dst ptr
- mov ebx,64[esp] ; ebx <-- height
- mov eax,60[esp] ; eax <-- width
- cld
- #0:
- mov esi,ebp
- mov edi,edx
- mov ecx,eax ; ecx <-- width
- rep movsw
- add ebp,40[esp]
- add edx,56[esp]
- dec ebx
- jne SHORT #0
- pop edi
- pop esi
- pop edx
- pop ecx
- pop ebx
- pop ebp
- ret
- blkcpy16 endp
-
- public blkcpy4
- blkcpy4 proc near
- push ebp
- push ebx
- push ecx
- push edx
- push esi
- push edi
- mov eax,36[esp] ; eax <-- y in src
- mov ebx,40[esp] ; ebx <-- width of src
- mul ebx
- mov ebp,32[esp] ; edi <-- x in src
- add ebp,eax
- add ebp,28[esp] ; ebp <-- src ptr
-
- mov eax,52[esp] ; eax <-- y in dst
- mov ebx,56[esp] ; ebx <-- width of dst
- mul ebx
- mov edx,48[esp] ; edx <-- x in dst
- add edx,eax
- add edx,44[esp] ; edx <-- dst ptr
- mov ebx,64[esp] ; ebx <-- height
- mov eax,60[esp] ; eax <-- width
- cld
- #0:
- mov esi,ebp
- mov edi,edx
- mov ecx,eax ; ecx <-- width
- rep movsb
- add ebp,40[esp]
- add edx,56[esp]
- dec ebx
- jne SHORT #0
- pop edi
- pop esi
- pop edx
- pop ecx
- pop ebx
- pop ebp
- ret
- blkcpy4 endp
-
- text ends
- end
-